package com.blq.api.domain.Vo;

import com.baomidou.mybatisplus.annotation.TableId;
import com.blq.common.xss.Xss;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.math.BigDecimal;

/**
 * @author Administrator
 * @title SysUserVo
 * @date 2023/1/11 9:14
 * @description TODO
 */
@NoArgsConstructor
@Data
@AllArgsConstructor
public class SysUserVo {


    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    @TableId(value = "user_id")
    private Long userId;

    /**
     * 用户昵称
     */
    @ApiModelProperty(value = "用户昵称")
    @Xss(message = "用户昵称不能包含脚本字符")
    @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
    private String nickName;

    /**
     * 手机号码
     */
//    @Sensitive(strategy = SensitiveStrategy.PHONE)
    @ApiModelProperty(value = "手机号码")
    private String phonenumber;


    /**
     * 用户地址
     */
    @ApiModelProperty(value = "用户地址")
    private String usetAddress;

    /**
     * 用户头像
     */
    @ApiModelProperty(value = "用户头像")
    private String userImage;

    /**
     * 用户密码
     */
    @ApiModelProperty(value = "用户密码")
    private String userPassword;

    /**
     * 用户账号
     */
    @ApiModelProperty(value = "用户账号")
    @Xss(message = "用户账号不能包含脚本字符")
    @NotBlank(message = "用户账号不能为空")
    @Size(min = 0, max = 30, message = "用户账号长度不能超过30个字符")
    private String userName;

    /**
     * 部门ID
     */
    @ApiModelProperty(value = "部门ID")
    private Long deptId;

    /**
     * 部门名字
     */
    @ApiModelProperty(value = "部门名字")
    private String deptName;
    /**
     * 部门所属单位id
     */
    @ApiModelProperty(value = "部门所属单位id")
    private Long departmentUnitId;
    /**
     * 部门所属单位
     */
    @ApiModelProperty(value = "部门所属单位")
    private String departmentUnitName;

    /**
     * 角色
     */
    @ApiModelProperty(value = "角色")
    private Object roles;

    /**
     * 权限
     */
    @ApiModelProperty(value = "权限")
    private Object permissions;

    /**
     * 岗位
     */
    @ApiModelProperty(value = "岗位")
    private Object posts;

    //经度
    private String longitude;
    //纬度
    private String latitude;
    /**
     * 省
     */
    @ApiModelProperty(value = "省")
    private String province;

    /**
     * 州市
     */
    @ApiModelProperty(value = "州市")
    private String city;

    /**
     * 区县
     */
    @ApiModelProperty(value = "区县")
    private String area;

    /**
     * 微信小程序openid
     */
    @ApiModelProperty(value = "openid")
    private String openid;

    /**
     * 默认接单人
     */
    @ApiModelProperty(value = "默认接单人")
    private Integer receiver;

    /**
     * 钱包金额
     */
    @ApiModelProperty(value = "钱包金额")
    private BigDecimal money;

    /**
     * 师傅分账比例
     */
    @ApiModelProperty(value = "师傅分账比例")
    private String workerRatio;

    /**
     * 师傅分账方案（0公司 1个人）
     */
    @ApiModelProperty(value = "师傅分账方案")
    private Integer workerRatioType;

    /**
     * 订单打款方式（0钱包 1微信 2支付宝 3银行卡）
     */
    @ApiModelProperty(value = "订单打款方式")
    private Integer checkType;

    /**
     * 微信头像
     */
    private String wxAvatar;

    /**
     * 微信昵称
     */
    @ApiModelProperty(value = "微信昵称")
    private String wxName;

    /**
     * 支付宝名字
     */
    private String zhiFuBaoName;

    /**
     * 支付宝账号
     */
    private String zhiFuBao;

    /**
     * 开户行
     */
    private String payBankName;

    /**
     * 银行卡号
     */
    private String payBankCard;

    /**
     * 卡号姓名
     */
    private String payBankUser;

    /**
     * 绑定号码
     */
    private String payBankPhone;

}
